1. Field of the Invention
The present invention relates to communications networks and, more specifically, to a technique for identifying lost or gained messages, such as request or grant signals.
2. Background Information
Communication in a computer network involves the exchange of data between two or more entities interconnected by communication links. These entities are typically software programs executing on computer platforms, such as end nodes and intermediate network nodes. Examples of an intermediate network node may be a router or switch that interconnects the communication links to enable transmission of data between the end nodes, such as servers having processor, memory and input/output (I/O) storage resources.
Communication software executing on the end nodes correlates and manages data communication with other end nodes. The nodes typically communicate by exchanging discrete frames or packets of data according to predefined protocols. In this context, a protocol consists of a set of rules defining how the nodes interact with each other. In addition, network software executing on the intermediate nodes allows expansion of communication to other end nodes. Collectively, these hardware and software components comprise a communications network and their interconnections are defined by an under-lying architecture.
The InfiniBand Architecture (IBA) is an I/O specification that defines a point-to-point, “switched fabric” technology used to, among other things, increase the aggregate data rate between processor and storage resources of a server. The IBA is described in the InfiniBand™ Architecture Specification Volume 1, Release 1.0.a, by the InfiniBand Trade Association, Jun. 19, 2001, which specification is hereby incorporated by reference as though fully set forth herein. Broadly stated, the switched fabric technology may be embodied in a main component switch configured to receive data traffic (IBA packets) from one or more input ports and forward that traffic over one or more output ports to an IBA communications network. A switch fabric of the main component switch may interconnect a plurality of line cards, each of which may be configured to operate with one or more additional component switches, such as intelligent input/output (I/O) adapters or “peripheral” switches, having ports that provide, e.g., Fibre Channel or Gigabit Ethernet link connections to the network. In this configuration, the component switches cooperate to create an extended switch of an IBA switch fabric or subnetwork (subnet).
Where only a relatively few input and output ports are needed to receive and transmit data over the communications network at relatively low bandwidth/speeds, the network switch may comprise a single device or module. However, where a relatively large numbers of ports (e.g., 64–256) and a relatively high bandwidth per port (e.g., 2–10 gigabits per second) are desired, the switch may need a plurality of different modules (e.g., 8–16). The modules constituting such a “large” switch may be grouped into three categories: control modules (CM), line modules (LM) and switch modules (XM). The CM provides control and monitoring functions for the operation and health of the switch using communication paths to all other modules that typically operate at a lower bandwidth relative to the data paths through the switch. The LM provides standard format data connections to attach the switch to the network. The XM provides the actual switching function in a switch fabric to transfer data between all LMs in the switch.
One type of switch fabric is a crossbar fabric adapted to switch packets received over input connections to output connections of the XM. The crossbar fabric may be configured to switch variable-sized packets, or it may be configured to switch fixed-size cells, which are generally smaller than a typical packet size. Upon receiving a packet, an ingress (source) LM apportions that packet into some number of fixed sized cells and forwards those cells to the XM. The cell switch fabric on the XM “switches” the cells and forwards them to an egress (destination) LM, which then reassembles the cells back into the original packet and forwards the packet over the network.
All other quality functions being equal, a cell switch fabric is often less expensive to implement than a variable-sized packet switch and facilitates computation of the input-to-output connections. In addition, the cell switch fabric allows for better differentiation of quality of service (QoS) levels and achieves better utilization than the variable sized packet switch. Moreover, the cell switch fabric ensures “fairness” among the variable sized packets switched by the crossbar fabric. That is, because of the varying sizes of packets, use of a fixed-sized cell granularity ensures fairness among all packets received at the switch by enabling, e.g., interleaving of cells from large and small packets during the switching function. Packet segmentation and reassembly costs are easily offset by these benefits, such that a cell switch fabric is commonly used in networking equipment.
Many switches employ credits, grants, tokens, requests or other such signals to control the flow of cells or packets through the switch. For example, a first component may be configured to hold a cell or packet until it receives a credit indicating that the next component that is to receive the cell or packet has the capacity to do so. Each time a component moves or issues a cell or packet, moreover, a corresponding credit is consumed. In such systems, components are constantly exchanging credits. To operate at the speeds specified in the IBA specification standard, switch components must exchange large numbers of credits at high-speed. Under such conditions, it is not uncommon for one or more credits to be lost due to noise in the signal paths or to manufacturing defects in the components. Although it is less likely, these conditions can also result in credits being improperly gained. A “gained” credit refers to the detection of a credit being received, even though no component sent the credit. The loss or gain of credits can adversely affect the operating characteristics of the switch. For example, the loss of even one credit can cause delays in the switching of the cells thereby degrading the switch's performance.
Accordingly, a need exists to identify whether credits, grants, requests, tokens or other such signals are being lost or gained in a switch or other such device.